From: Sebastian Keller Date: Wed, 5 Oct 2022 22:20:16 +0000 (+0200) Subject: screencast: Don't force buffer copies on recent gstreamer versions X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~435^2^2~14 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d7b44319;p=gnome-shell.git screencast: Don't force buffer copies on recent gstreamer versions Gstreamer 1.20.4 includes a fix in the videoconvert element that makes it no longer necessary to always copy buffers in pipewiresrc to have smooth recordings. This change now skips those otherwise unnecessary copies when using a new enough videoconvert. Related: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2928 Part-of: --- diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js index 5ff5aff52..bb5387428 100644 --- a/js/dbusServices/screencast/screencastService.js +++ b/js/dbusServices/screencast/screencastService.js @@ -231,7 +231,8 @@ var Recorder = class { _ensurePipeline(nodeId) { const framerate = this._framerate; const needsCopy = - Gst.Registry.get().check_feature_version('pipewiresrc', 0, 3, 57); + Gst.Registry.get().check_feature_version('pipewiresrc', 0, 3, 57) && + !Gst.Registry.get().check_feature_version('videoconvert', 1, 20, 4); let fullPipeline = ` pipewiresrc path=${nodeId}